@alexcrichton another preparation PR for #2196
I've removed obscure `metadata` field from `Target`. It is a breaking change (for read-manifest), but the field seemed cryptic, useless and untested :)
`Target` has a bunch of boolean fields:
```
tested: bool,
benched: bool,
doc: bool,
doctest: bool,
harness: bool, // whether to use the test harness (--test)
for_host: bool,
```
I guess they should not be included in serialized representation?
I will push commits for other `Encodable`s here.